package br.com.candiolli.apoio.server;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import br.com.candiolli.apoio.dto.AlertaDTO;
import br.com.candiolli.apoio.dto.AtividadeDTO;
import br.com.candiolli.apoio.dto.ClienteDTO;

@Path("/AtividadesWs")
public class AtividadeWS extends RestWS {

	@GET
	@Path("/buscarAtividades")
	@Produces(MediaType.APPLICATION_JSON)
	public List<AtividadeDTO> buscarAtividades() {
		try {
			ResultSet result = executeQuery("SELECT av.idatividade idatividade, av.descricao, av.dt_cadastro, av.dt_fim, av.dt_inicio, av.local, "+
											"al.idalerta idalerta, al.idcliente, al.dt_alerta "+
											"FROM test.atividade av "+
											"left join test.alerta al on al.idatividade = av.idatividade;");
			
			List<AtividadeDTO> list = new ArrayList<AtividadeDTO>();
			
			if(result != null){
				while(result.next()){
					AtividadeDTO at = new AtividadeDTO();
					at.setId(result.getInt("idatividade"));
					at.setDescricao(result.getString("descricao"));
					at.setLocal(result.getString("local"));
				
					SimpleDateFormat fm = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
					at.setDataCadastro(fm.format(result.getDate("dt_cadastro")));
					at.setDataInicio(fm.format(result.getDate("dt_inicio")));
					at.setDataFim(fm.format(result.getDate("dt_fim")));
					
					if(result.getInt("idalerta") > 0){
						AlertaDTO alerta = new AlertaDTO();
						alerta.setId(result.getInt("idalerta"));
						alerta.setDtAlerta(fm.format(result.getDate("dt_alerta")));
						
						int idCliente = result.getInt("idcliente");
						ClienteDTO cliente  = new ClienteWS().buscarClientePorId(idCliente);
						alerta.setCliente(cliente);
						at.setAlerta(alerta);
					}
					
					list.add(at);
				}
			}
			return list;
					
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return new ArrayList<AtividadeDTO>();
	}
}
